package demo1;

import java.util.Arrays;
public class Test2 {
    public static void main(String[] args) {
        int[] array = {12 , 3, 50 , 33 , 21 , 20 , 17 , 15 , 9} ;   // 定义一个数组供我们排序 ;
        // 调用冒泡排序排序数组 ;
        bubbleSort(array);
        //打印数组查看数组里元素排序的怎么样了
        System.out.println(Arrays.toString(array));
    }
    //冒泡排序
    public static void bubbleSort(int[] array){
        //记录数组长度, 用来排序
        int len = array.length - 1 ;   // 因为我们要防止 指针 越界, 所有要-1;

        for (int i = 0; i < len; i++) {
             // 定义一个 flg , 如果 发生交换 , 那么就让flg =true;
               boolean flg = false ;
            for(int j = 0 ; j < len - i  ; j ++){
                if(array[j] > array[j+1]){
                    flg = true ;          // 发生交换,让flg = true;
                    swap(array,j, j+1);
                }
            }
            if(flg == false){      // 判断一下如果,没有发生交换, 就直接返回;
                return ;
            }
        }
    }
    //交换数组元素位置的方法
    private static void swap(int[] array , int x , int y){
        int tmp = array[x];
        array[x] = array[y];
        array[y] = tmp ;
    }
}